note
	description: "Summary description for {MISIL}."
	author: "Natalia Mamani LU88849 - Eduardo Sanhueza LU92330"
	date: "$Date$"
	revision: "$Revision$"

class
	MISIL

feature { MISIL , MC72 , MIRAGE }

	material_explosivo : BOOLEAN
	objetivo : STRING

feature { MISIL ,  MC72 }

	-- Activar --

	Activar is

		require -- Precondiciones
			objetivo = void
			material_explosivo = false

		local
			defectuoso : RANDOM
			t : DATE_TIME

		do
			create defectuoso.make
			create t.make_now

			defectuoso.set_seed (t.seconds)

			if ((defectuoso.next_random(t.seconds) \\ 7 /= 0)) then
				defectuoso:=void;
				defectuoso.set_seed(1)
			end

			material_explosivo := true

		ensure

			material_explosivo = true
			objetivo = old objetivo

		end

	-- Fijar_Blanco --

	Fijar_Blanco(obj : STRING) is

		require
			obj /= void
			material_explosivo = true


		do
			objetivo := obj

		ensure

			material_explosivo = true
			objetivo = obj
			objetivo /= void

		end



	-- Despegar --

	Despegar is

		require

			objetivo /= void
			material_explosivo = true

		local
			combustible : RANDOM
			t : DATE_TIME

		do
			create combustible.make
			create t.make_now
			combustible.set_seed (t.seconds)

			if ((combustible.next_random(t.seconds) \\ 2 /= 0)) then
				combustible:=void;
				combustible.set_seed(1)
			end

			ensure
				objetivo = old objetivo
				material_explosivo = old material_explosivo

		end

invariant
	invariant_clause: True


	-- Activar :: Activa el material explosivo en el misil

	-- Fijar_Blanco :: Sirve para cargar en la memoria del misil el objetivo.

	-- Despegar :: Hace que el misil salga volando en busca de su objetivo.

end
